import { http } from "@/utils/http";

// 通用响应接口
export interface ApiResponse<T = any> {
  code: number;
  data: T;
  message: string;
}

// 头部信息接口
export interface HeadInfo {
  name: string;                   // 物业公司名称
  contact: string;                // 联系人名称
  phone: string;                  // 联系人电话
  createTime: string;             // 注册时间
  cellCount: number;              // 小区数量
}

// 核心统计数据接口
export interface DashboardStats {
  houseCount: number;             // 房屋认证数
  ownerCount: number;             // 业主数
  renterCount: number;            // 租客数
  visitorCount: number;           // 访客数
  parkingSpaceCount: number;      // 车位数
  vehicleCount: number;           // 登记车辆数
  vendorCount: number;            // 供应商数
}

// 房屋统计接口
export interface HouseStatistics {
  totalHouses: number;            // 总房屋数
  occupiedHouses: number;         // 入住房屋数
  rentedHouses: number;           // 出租房屋数
  vacantHouses: number;           // 空置房屋数
}

// 费用统计接口
export interface PaymentStatistics {
  totalRepairPrice: number;       // 总维修价格
  totalAdvertPrice: number;       // 总广告费
  unpaidPrice: number;            // 未缴费用
  totalDeposit: number;           // 预存总金额
}

// 待办工单接口
export interface PendingWorkOrder {
  details: string;                // 工单描述
  createTime: string;             // 创建时间
  importance: string;             // 重要程度
  contactPhone: string;           // 联系人电话
  contactPerson: string;          // 联系人
  cellName: string;               // 小区
  roomNumber: string;             // 房间号
}

// 公告信息接口
export interface Notice {
  id: number;
  tenantId: number;
  noticeName: string;             // 公告名称
  noticeType: string;             // 公告类型
  cellId: number;
  status: string;                 // 状态
  publisher: string;              // 发布人
  content: string;                // 内容
  isTop: number;                  // 是否置顶
  createTime: string;             // 创建时间
  updateTime: string;
  isDeleted: number;
}

// 快捷方式接口
export interface QuickAccess {
  id: number;
  name: string;
  icon: string;
  url: string;
}

// API接口方法
// 获取头部信息
export const getHeadInfo = () => {
  return http.request<ApiResponse<HeadInfo>>("get", "/home/head");
};

// 获取核心统计数据
export const getDashboardStats = () => {
  return http.request<ApiResponse<DashboardStats>>("get", "/home/countBar");
};

// 获取房屋统计信息
export const getHouseStatistics = () => {
  return http.request<ApiResponse<HouseStatistics>>("get", "/home/houseCount");
};

// 获取费用统计信息
export const getPaymentStatistics = () => {
  return http.request<ApiResponse<PaymentStatistics>>("get", "/home/homePrice");
};

// 获取待办工单信息
export const getPendingWorkOrders = () => {
  return http.request<ApiResponse<PendingWorkOrder[]>>("get", "/home/homeList");
};

// 获取公告信息
export const getRecentNotices = () => {
  return http.request<ApiResponse<Notice[]>>("get", "/notice/queryAll");
};

// 获取快捷方式列表（本地数据）
export const getQuickAccessList = (): QuickAccess[] => {
  return [
    { id: 1, name: '收银台', icon: '💰', url: '/cashier' },
    { id: 2, name: '未缴账单', icon: '📋', url: '/unpaid-bills' },
    { id: 3, name: '小区公告', icon: '📢', url: '/announcements' },
    { id: 4, name: '一键报修', icon: '🔧', url: '/repair' },
    { id: 5, name: '缴费通知', icon: '💳', url: '/payment-notice' },
    { id: 6, name: '+添加', icon: '➕', url: '/add' }
  ];
};
